yay进阶

您所在的位置:网站首页 apt 查找已安装包 yay进阶

yay进阶

2023-04-13 09:46| 来源: 网络整理| 查看: 265

yay是一个AUR Helper,他可以执行pacman的几乎所有操作,并在此基础上添加了很多额外用法。我没有在网络上查找到关于yay的、除了pacman基础用法和安装AUR包以外的中文教程,英文的也几乎没有看到,这也是我写这篇文章的原因所在。本文通篇详讲yay的每一个设置/选项(大概就是archwiki那种干涩的行文思路),最后会给出我自己的一些常用命令,但不会做解释。写作时参考了yay的英文使用手册,如果你的arch安装了yay,那么即可通过man yay命令随时查阅它。阅读提示: 本文中出现的foo一般是指包名,标注*的表示该选项默认启用。

本文使用markdown写作,首发于「我的博客」,对本文的后续变动将不会继续同步至知乎,建议访问我的博客以阅读最新的修改版本

基本用法

yay的基本用法是yay [options] [targets]、yay foo和yay,yay [options] [targets]的用法可以讨论的点比较多,我会在后文中一一道来。

yay

当我们仅执行yay,后面不跟任何参数时,yay会执行操作yay -Syu,他会先调用pacman更新源的数据库、更新所有从源内安装的软件包,并检查你的AUR包有没有更新。

yay foo

通过yay后面直接跟包名的命令会让yay直接在源和AUR内搜索带有foo关键词的包(包名和简介中只要出现foo都会被一网打尽),以下是我执行yay dingtalk的输出

5 aur/com.dingtalk.deepin 5.0.15deepin7-1 (+0 0.00) Deepin Wine dingtalk 4 aur/deepin.com.dingtalk.com 5.1.28.12-2 (+1 0.12) DingTalk Client on Deepin Wine 3 aur/dingtalk 2.1.3-1 (+3 0.00) 钉钉桌面版,基于electron和钉钉网页版开发,支持Windows、Linux和macOS 2 aur/dingtalk-linux 3.5.5-1 (+6 0.12) May be the official Linux experimental version 1 aur/dingtalk-electron 2.1.9-1 (+9 0.15) 钉钉Linux版本 ==> Packages to install (eg: 1 2 3, 1-3 or ^4) ==

输入每一项对应的序号即可进入相应的安装过程。

yay [options] [targets]

在这里,\每次只能有一个,[options]和[targets]可以有多个,且多个[options]可以合起来写在一起。比如yay -P -s -f可以直接写成yay -Psf,顺序也可以颠倒,-Psf和-sPf没区别。

-Y (--yay)

-Y行为其实是yay的默认行为,当你没有加其他的行为参数时,yay就会执行-Y参数,可以跟--gendb和-c。

--gendb

生成AUR数据库。仅当从另一个AUR Helper迁移到yay时,才应使用此选项。~~(根据我的个人理解,是根据你Arch内安装的源内找不到的包的包名去AUR里寻找对应的PKGBUILD,并且把能找到的PKGBUILD给clone到~/.cache/yay/目录下)~~

千玄子大佬说:“简单说来就是把在 AUR 的 PKGBUILD 下下来然后比对是否要更新。”

-c(--clean)

清除不再需要的、没有被依赖的包。(相当于apt中的autoremove)

-P(--show)

执行特定的Print操作。可以跟的[option]有-c、-f、-d、-g、-n、-s、-u、-w、-q

-c(--complete)

Print所有源内和AUR软件包的列表。这是给命令行操作提供的,并不打算由用户直接使用。(意思是启用了这个选项以后你的终端会出现一大串长常的列表来告诉你你的Arch到底从哪里安装了哪些包,并不是直接给你用的,是作为数据留给别的命令来玩耍的)

-f(--fish)

在输出结果到终端时,会专门为fish用户做微调。(但是根据SamLukeYes大佬说他用fish体验下来并没有感知到加不加有什么区别,应该是属于感知不强的选项)

-d(--defaultconfig)

Print默认的yay配置。

-g(--currentconfig)

Print当前的yay配置。

-n(--numberupgrades)

数一数你现在还有多少AUR包待更新。yay作者不推荐你使用呢,他推荐你用yay -Qu或者wc -l来代替它。

-s(--stats)

会展示一大堆信息,如下

[zhullyb@Archlinux ~]$ yay -Ps ==> Yay version v10.2.0 #yay版本 =========================================== ==> Total installed packages: 1240 #总共安装了多少包 ==> Total foreign installed packages: 24 #多少包不是从源里安装的 ==> Explicitly installed packages: 271 #有多少包是你自己主动安装的(而不是作为依赖安装的) ==> Total Size occupied by packages: 14.3 GiB #安装的所有包合在一起一共占了你多少空间 =========================================== ==> Ten biggest packages: #十个体积最大的包 wps-office-cn: 990.9 MiB ttf-sarasa-gothic: 855.5 MiB linux-firmware: 652.3 MiB baidunetdisk-bin: 494.7 MiB com.antutu.benchmark: 412.0 MiB wine: 402.2 MiB linux-xanmod-cacule-uksm-cjktty: 324.4 MiB microsoft-edge-dev-bin: 316.4 MiB wine-mono: 316.2 MiB deepin-wine5-i386: 259.5 MiB =========================================== :: Querying AUR... -> Missing AUR Packages: zhullyb-archlinux-git #AUR里找不到的包 -> Flagged Out Of Date AUR Packages: xml2 #AUR中被人标注过期的包-u(--upgrades)

展示你所有待更新的包。

-w(--news)

展示来自http://archlinux.org的新闻。需要注意的是,这里的新闻是具有时效性的,只有在你的Arch最后一次更新以后发出来的新闻才会被显示出来。如果你不想要yay判断新闻时效性,你可以通过yay -Pww(即两个w)来获取所有能获得的新闻。

-q(--quiet)

在输出新闻的时候,仅输出新闻的标题。该功能需要与-w连用,即yay -Pwq。

-G(--getpkgbuild)

后跟包名。需要注意的是,如果指定的包不存在于官方源,则无法输出,后跟-f、-p参数。

如果希望仅获取来自AUR(即排除第三方源的干扰)的PKGBUILD,后需跟-a参数。

-f(--force)

强制下载AUR中的PKGBUILD,如果它在yay缓存目录已经存在了,那就覆盖它!

-p(--print)

Print指定包的PKGBUILD。

pacman 拓展用法

yay虽然可以使用pacman的所有\,但是它远不仅于此。在这一段,我将向你介绍yay中包含的那些pacman不包括的pacman \

-S-S, -Si, -Sl, -Ss, -Su, -Sc, -Qu

这些操作pacman都支持,而与pacman不同的是,yay的这些操作可以涵盖到官方源/第三方源和AUR中的所有包。

-Sc

yay将会清除AUR包构建时的缓存和没有被track的文件。没有被track的文件在这里指AUR包构建时下载的sources或者构建完成的pkg包,但是vcs sources会被保留(比如.git文件夹)

全局的[options]

全局是指在所有\下都可以加啦。

--repo

假定你给出的包名只存在源里(忽视AUR的存在)

-a(--aur)

假定你给出的包名只存在AUR中(忽视源的存在)

配置设置

原版的man手册排的比较混乱,我这里自己细分了几个类型,或许不是特别专业,但我希望能够帮助你们理解。

自定义调用命令型--editor

设置编辑时调用的编辑器。

--makepkg

设置makepkg时需要调用makepkg命令(一般情况下用不到)

--pacman

设置运行pacman时需要调用pacman命令(一般情况下用不到)

--tar

设置makepkg解压tar资源时调用的tar命令(一般情况下用不到)

--git

设置makepkg clone git资源时调用的git命令(比如你可以安装AUR中的fgit-go,使用--git fgit参数来让fastgit代理clone的过程)

--gpg

设置gpg验证资源时调用的gpg命令

--sudo

设置调用sudo获取su权限安装pkg时所调用的sudo命令。

自定义配置文件型--config

设置读取的pacman配置文件。

--makepkgconf

设置读取的makepkg配置文件。

--nomakepkgconf

不读取系统中的makepkg.conf,仅使用Arch默认状态下的配置文件。

自定义路径类型--builddir

设置build路径,默认路径为~/.cache/yay/

--absdir

设置abs路径,默认路径为~/.cache/yay/abs/

参数传递型--editorflags

后跟需要跟随传递给编辑器的参数。如果需要传递多个参数,可以使用引号。

--mflags

后跟需要跟随传递给makepkg的参数。如果需要传递多个参数,可以使用引号。

这个用的人不多,但其实是非常好用的一个功能。在我们安装deepin-wine-tim等包的时候,很可能会遇到文件明明完整但checksum不通过的情况,这时我们可以跟一个--skipchecksums参数传递给makepkg以跳过checksum的过程。

--gpgflags

后跟需要跟随传递给pgp的参数。如果需要传递多个参数,可以使用引号。

--sudoflags

后跟需要跟随传递给sudo的参数。如果需要传递多个参数,可以使用引号。

菜单配置型clean菜单*--cleanmenu

启用清除询问菜单。(询问你是否需要清除已存在的文件)

--nocleanmenu

禁用清除询问菜单。(不询问你是否需要清除已存在的文件)

--answerclean

自动回答cleanmenu,后跟参数。

*--noanswerclean

不设置自动回答。

diff菜单*--diffmenu

启用对比询问菜单。(询问你是否需要对比本地文件和AUR文件)

--nodiffmenu

禁用对比询问菜单。(不询问你是否需要对比本地文件和AUR文件)

--answerdiff

自动回答cleanmenu,后跟参数。

*--noanswerdiff

不设置自动回答。

edit菜单--editmenu

启用修改询问菜单。(询问你是否需要修改PKGBUILD以及相关文件)

*--noeditmenu

禁用修改询问菜单。(不询问你是否需要修改PKGBUILD以及相关文件)

--answeredit

自动回答editmenu,后跟参数。

*--noansweredit

不设置自动回答。

upgrade菜单*--upgrademenu

启用更新询问菜单。(询问你是否需要更新AUR包)

--noupgrademenu

禁用更新询问菜单。(不询问你是否需要更新AUR包)

--answerupgrade

自动回答upgrademenu,后跟3.9)

*--norebuild

构建软件包时,如果在缓存中找到该软件包并且该软件包与想要的软件包的版本相同,则跳过软件包的编译过程并使用现有的二进制程序。

sudoloop--sudoloop

在后台循环调用sudo,以防止sudo授权在长时间构建期间超时。

*--nosudoloop

不在后台循环调用sudo,可能会导致sudo授权在长时间构建期间超时。

batchinstall--batchinstall

在构建和安装AUR包时,对每个软件包的安装进行排序,而并非在构建之后立刻安装每个软件包时。 需要注意的是,一旦构建了所有软件包,或者需要构建队列中的软件包作为构建另一个软件包的依赖项,应当在安装队列中安装所有软件包。

*--nobatchinstall

在构建AUR包成功后立即安装。

clearafter--cleanafter

在构建AUR包完成以后清除cache文件。

*--nocleanafter

在构建AUR包完成以后不清除cache文件。

其他型--save

把你这一次执行yay后面跟的配置参数永久保存下来。

--aururl

更改aur源地址(默认为https://aur.archlinux.org),适用于中国用户,可以使用此参数将AUR的地址设置成清华的反代,具体的配置命令为

yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save--sortby

在搜索过程中,按特定条件对AUR结果进行排序,后跟参数,默认为votes。

--searchby

通过指定查询类型来搜索AUR软件包,后跟参数,默认为name-desc。

*--topdown

优先展示源内包,其次才是AUR包

--bottomup

优先展示AUR包,其次才是源内包

--requestsplitn

设置在每次向AUR的请求的最大数值(默认150)。数值越高,请求时间越短,但是单次请求的数值过大会导致error。当这个数值>500时你应当特别注意这一点。

--completioninterval

刷新完成高速缓存的时间(以天为单位,默认为7)。 将此值设置为0将导致每次刷新缓存,而将其设置为-1将导致永远不刷新缓存。

我个人的常用命令yay yay foo yay -Sa foo yay -Scc yay -Ps yay -Pww yay -Gpa yay -Ga



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3